package(default_visibility = ["//visibility:public"])

cc_binary(
    name = "copy_ctor",
    srcs = ["copy_ctor.cc"],
)

cc_binary(
    name = "tpl_inst_main",
    srcs = ["tpl_inst_main.cc", "tpl_inst.cc", "tpl_inst.h", "name_trait.h"],
)

cc_binary(
    name = "virtual_template",
    srcs = ["virtual_template.cc"],
)

cc_binary(
    name = "forward",
    srcs = ["forward.cc"],
)

cc_binary(
    name = "recursive_template",
    srcs = ["recursive_template.cc"],
)

cc_binary(
    name = "constexpr",
    srcs = ["constexpr.cc"],
)

cc_binary(
    name = "name_trait_main",
    srcs = ["name_trait_main.cc", "name_trait.h"],
)

cc_binary(
    name = "prevent_implicit_conversion",
    srcs = ["prevent_implicit_conversion.cc", "name_trait.h", "drake_copy.h"],
)

cc_binary(
    name = "tpl_spec_return_type_main",
    srcs = ["tpl_spec_return_type_main.cc", "tpl_spec_return_type.cc", "tpl_spec_return_type.h", "name_trait.h"],
)

cc_binary(
    name = "auto_inference",
    srcs = ["auto_inference.cc", "name_trait.h"],
)

cc_binary(
    name = "tpl_variadic_final",
    srcs = ["tpl_variadic_final.cc", "name_trait.h"],
)

cc_binary(
    name = "tuple",
    srcs = ["tuple.cc", "name_trait.h"],
)

cc_binary(
    name = "tuple_future_main",
    srcs = ["tuple_future_main.cc", "tuple_future.h"],
)

cc_binary(
    name = "tpl_spec_greedy",
    srcs = ["tpl_spec_greedy.cc", "name_trait.h"],
)

cc_binary(
    name = "overload_options",
    srcs = ["overload_options.cc"],
)

cc_binary(
    name = "tpl_check_errors",
    srcs = ["tpl_check_errors.cc", "name_trait.h"],
)

cc_binary(
    name = "composition_ctor",
    srcs = ["composition_ctor.cc", "name_trait.h"],
)

cc_binary(
    name = "tpl_ref_greedy",
    srcs = ["tpl_ref_greedy.cc", "name_trait.h"],
)

cc_binary(
    name = "tpl_tpl_forward",
    srcs = ["tpl_tpl_forward.cc", "name_trait.h"],
)

cc_binary(
    name = "tpl_ref",
    srcs = ["tpl_ref.cc", "name_trait.h"],
)

cc_binary(
    name = "rvalue_check",
    srcs = ["rvalue_check.cc", "name_trait.h"],
)

cc_binary(
    name = "tuple_iter",
    srcs = ["tuple_iter.cc", "tuple_iter.h", "name_trait.h", "tuple_future.h"],
)

cc_binary(
    name = "make_shared_alias",
    srcs = ["make_shared_alias.cc", "name_trait.h"],
)

cc_binary(
    name = "tpl_friend",
    srcs = ["tpl_friend.cc"],
)

cc_binary(
    name = "tpl_method_overload",
    srcs = ["tpl_method_overload.cc", "name_trait.h", "drake_copy.h"],
)

cc_binary(
    name = "lifetime",
    srcs = ["lifetime.cc"],
)

cc_binary(
    name = "benchmark_map_test",
    srcs = ["benchmark_map_test.cc"],
    deps = ["//externals/benchmark"],
)

cc_binary(
    name = "check_for_type",
    srcs = ["check_for_type.cc", "name_trait.h"],
)

cc_binary(
    name = "tpl_tpl_pod",
    srcs = ["tpl_tpl_pod.cc"],
)

cc_binary(
    name = "tpl_spec_switch_main",
    srcs = ["tpl_spec_switch_main.cc", "tpl_spec_switch.cc", "tpl_spec_switch.h"],
)

cc_binary(
    name = "auto_flexibility",
    srcs = ["auto_flexibility.cc", "name_trait.h"],
)

cc_binary(
    name = "tpl_rref_only",
    srcs = ["tpl_rref_only.cc"],
)

cc_binary(
    name = "optional",
    srcs = ["optional.cc"],
)

cc_binary(
    name = "tpl_pack_visitor",
    srcs = ["tpl_pack_visitor.cc"],
)

cc_binary(
    name = "c_style_init",
    srcs = ["c_style_init.cc"],
)

cc_binary(
    name = "tpl_pack_sizing",
    srcs = ["tpl_pack_sizing.cc"],
)

cc_binary(
    name = "friend_tpl",
    srcs = ["friend_tpl.cc"],
)

cc_binary(
    name = "stl_ref",
    srcs = ["stl_ref.cc"],
)

cc_binary(
    name = "stl_container",
    srcs = [
        "stl_container.cc",
    ],
)

cc_binary(
    name = "stl_pod",
    srcs = [
        "stl_pod.cc",
    ],
)
